﻿<script type="text/javascript">
    layui.use(function(){
      let $ = layui.$;
      let form = layui.form;

      // 输入框点缀事件 - 搜索示例
      form.on('input-affix(search)', function(data){
          let elem = data.elem; // 输入框
          let value = elem.value; // 输入框的值
          if(!value){
            layer.msg('请输入搜索内容');
            return elem.focus()
          };
          // 搜索跳转
          location.href = '/Home/Search?name='+ value;
      });

      //输入框dom
      let searchInput = $("#ID-search");
      let listDom = $("#ID-search-list");

      //回车事件
      searchInput.keydown(function(e){
          if(e.keyCode == 13){
              let value = searchInput.val();
              if(value){
                  // 搜索跳转
                  location.href = '/Home/Search?name='+ value;
              }
          }
      })

      //输入框值变更
    searchInput.on("input", async function() {
        listDom.empty(); // 先清空
        let value = searchInput.val();
        console.log(value);
        let dataArray = await loadData(value);
        $.each(dataArray, function(index, item) {
            listDom.append(
                $('<option>').attr('value', item.name).text(item.type)
            );
        });
    });
      
      // searchInput.on("blur", function() {
      //     listDom.empty(); // 清空
      // });

      function loadData(value) {
          // 返回一个Promise对象
          return new Promise((resolve) => {
              $.get(`/Home/GetMovieName?name=${value}`, function(result){
                  if (Array.isArray(result)) {
                      const typeMap = {
                          "dm": "动漫",
                          "ds": "电视剧",
                          "dy": "电影",
                          "zy": "综艺",
                      };
                      let data = result.map(x => ({
                          type: typeMap[x.type] || null,
                          name: x.word
                      }));
                      resolve(data); // 将处理后的数据通过resolve返回
                  } else {
                      console.log(result);
                      resolve([]); // 非数组时返回空数组
                  }}).fail(function() {
                      // 处理请求失败的情况
                      console.error("请求失败");
                      resolve([]); // 失败时也返回空数组
                  });
          });
      }
    });
</script>
